<?php

namespace common\models\base;

use Yii;

/**
 * This is the model class for table "{{%base_department}}".
 *
 * @property int $id
 * @property int $pid 父部门ID
 * @property string $department_name 部门名称
 * @property int $level 层级
 * @property string $tree_id 树级IDs【1-2-3-】
 * @property int $status 状态【-1：删除; 0：禁用; 1：启用】
 * @property int $sort 排序（数字越小，越靠前）
 * @property int $data_level 数据权限【1本人、2本部门、3本部门以及子部门、4所有（预留）】
 * @property string|null $select_role_ids 筛选范围角色IDs【格式：[1,2,3]】
 * @property int $default_role_id 默认角色ID
 * @property string|null $leader_member_ids 部门负责人IDs【格式：[1,2,3]】
 * @property int $operation_id 操作人ID
 * @property string $operation_name 操作人
 * @property int $created_at 添加时间
 * @property int $updated_at 更新时间
 */
class Department extends \common\models\base\BaseModel
{
    const DATA_LEVEL_SELF = 1;// 本人
    const DATA_LEVEL_DEPARTMENT_NOW = 2;// 本部门
    const DATA_LEVEL_DEPARTMENT_ALL = 3;// 本部门及子部门
    const DATA_LEVEL_ALL = 4;// 所有（预留）

    const STATUS_DELETE = -1;// 删除
    const STATUS_INVALID = 0;// 失效
    const STATUS_ENABLE = 1;// 正常

    public static $dataLevels = [
        self::DATA_LEVEL_SELF => '本人',
        self::DATA_LEVEL_DEPARTMENT_NOW => '本部门',
        self::DATA_LEVEL_DEPARTMENT_ALL => '本部门及子部门',
        self::DATA_LEVEL_ALL => '所有',
    ];

    public static $statuss = [
        self::STATUS_DELETE => '删除',
        self::STATUS_INVALID => '停用',
        self::STATUS_ENABLE => '启用',
    ];

    /**
     * {@inheritdoc}
     */
    public static function tableName()
    {
        return '{{%base_department}}';
    }

    /**
     * {@inheritdoc}
     */
    public function rules()
    {
        return [
            [['pid', 'level', 'status', 'sort', 'data_level', 'default_role_id', 'operation_id', 'created_at', 'updated_at'], 'integer'],
            [['select_role_ids', 'leader_member_ids'], 'safe'],
            [['department_name'], 'string', 'max' => 60],
            [['tree_id'], 'string', 'max' => 256],
            [['operation_name'], 'string', 'max' => 100],
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'pid' => '父部门ID',
            'department_name' => '部门名称',
            'level' => '层级',
            'tree_id' => '树级IDs【1-2-3-】',
            'status' => '状态【-1：删除; 0：禁用; 1：启用】',
            'sort' => '排序（数字越小，越靠前）',
            'data_level' => '数据权限【1本人、2本部门、3本部门以及子部门、4所有（预留）】',
            'select_role_ids' => '筛选范围角色IDs【格式：[1,2,3]】',
            'default_role_id' => '默认角色ID',
            'leader_member_ids' => '部门负责人IDs【格式：[1,2,3]】',
            'operation_id' => '操作人ID',
            'operation_name' => '操作人',
            'created_at' => '添加时间',
            'updated_at' => '更新时间',
        ];
    }
}
